package com.snail.model.dto;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @Author 蔡徐坤
 * @Date 2025/7/23 20:44
 * @Description: 封装团队详情的字段
 */
@Data
public class TeamDetailsDTO {
    private Long id;
    // 该注解表示为防止前端传来空值，覆盖数据库默认值
    @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
    private String teamName;
    /**
     * 战队描述
     */
    @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
    private String description;
    private String logo;

    private String tag;
    /**
     * 最大成员数
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private Integer maxCount;
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private BigDecimal subscribePrice;
    /**
     * 订阅周期（0：无，1：周，2：月，3：季，4：年）
     */
    private Integer subscribeCycle;
    /**
     * 订阅折扣（0.5表示五折）
     */
    private BigDecimal subscribeDiscount;

    /**
     * 免费试用天数
     */
    private Integer trialDays;


    /**
     * 创建时间 FieldStrategy.NEVER 只读字段
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NEVER)
    private LocalDateTime createTime;

}
